package com.fand.platform.authority.service;

import java.util.List;
import java.util.Map;

import com.fand.cache.support.CacheEvictSupport;
import com.fand.dto.PaginationDto;
import com.fand.platform.authority.dto.UserGrDto;
import com.fand.platform.authority.dto.UserGrBuArDto;
import com.fand.platform.authority.dto.UserGrRoDto;
import com.fand.platform.authority.dto.UserGrUsDto;

/**
 * 用户组服务
 *
 * @author yaoHT
 */
public interface UserGrService extends CacheEvictSupport {
	String BEAN_ID = "com.fand.platform.authority.service.UserGrService";

	String CACHE_NAME = BEAN_ID + "Cache";
	/**
	 * 保存:用户组
	 * 
	 * @param saveUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象
	 */
	UserGrDto saveUserGrByIdOrCodeForUserGr(UserGrDto saveUserGr);

	/**
	 * 保存:用户组
	 * 
	 * @param saveUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象
	 */
	UserGrDto saveUserGrBy2ForUserGr(UserGrDto saveUserGr);

	/**
	 * 删除:用户组
	 * 
	 * @param deleteUserGr
	 *            用户组对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrBy1(UserGrDto deleteUserGr);

	/**
	 * 删除:用户组
	 * 
	 * @param deleteUserGr
	 *            用户组对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrByIds(UserGrDto deleteUserGr);

	/**
	 * 设置:用户组
	 * 
	 * @param setUserGr
	 *            用户组对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrBy1(UserGrDto setUserGr);

	/**
	 * 设置:用户组
	 * 
	 * @param setUserGr
	 *            用户组对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrBy2(UserGrDto setUserGr);

	/**
	 * 读取:用户组
	 * 
	 * @param readUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象
	 */
	Integer readUserGrByCodeNqIdForInteger(UserGrDto readUserGr);

	/**
	 * 读取:用户组
	 * 
	 * @param readUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象
	 */
	Integer readUserGrBy2ForInteger(UserGrDto readUserGr);

	/**
	 * 读取:用户组
	 * 
	 * @param readListUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象集合
	 */
	List<Integer> readListUserGrBy1(UserGrDto readUserGr);

	/**
	 * 读取:用户组
	 * 
	 * @param readListUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象集合
	 */
	List<Integer> readListUserGrBy2(UserGrDto readUserGr);

	/**
	 * 查询:用户组
	 * 
	 * @param getUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象
	 */
	UserGrDto getUserGrBy1(UserGrDto getUserGr);

	/**
	 * 查询:用户组
	 * 
	 * @param getUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象
	 */
	UserGrDto getUserGrById(UserGrDto getUserGr);

	/**
	 * 查询:用户组
	 * 
	 * @param findUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象集合
	 */
	List<UserGrDto> findUserGrBy1(UserGrDto findUserGr);

	/**
	 * 查询:用户组
	 * 
	 * @param findUserGr
	 *            用户组对象
	 * 
	 * @return 用户组对象集合
	 */
	List<UserGrDto> findUserGrBy2(UserGrDto findUserGr);
	
	/**
	 * 分页:用户组
	 * 
	 * @param paginationUserGr
	 *            用户组对象
	 * 
	 * @return 用户组分页对象
	 */
	PaginationDto<UserGrDto> paginationUserGrBy1ForUserGrList(UserGrDto paginationUserGr);
			
	/**
	 * 分页
	 * 
	 * @param paginationUserGr
	 *            用户组对象
	 * 
	 * @return 用户组分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserGrBy1ForMapList(UserGrDto paginationUserGr);
	/**
	 * 保存:用户组与业务范围
	 * 
	 * @param saveUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象
	 */
	UserGrBuArDto saveUserGrBuArByIdOrCodeForUserGrBuAr(UserGrBuArDto saveUserGrBuAr);

	/**
	 * 保存:用户组与业务范围
	 * 
	 * @param saveUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象
	 */
	UserGrBuArDto saveUserGrBuArBy2ForUserGrBuAr(UserGrBuArDto saveUserGrBuAr);

	/**
	 * 删除:用户组与业务范围
	 * 
	 * @param deleteUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrBuArBy1(UserGrBuArDto deleteUserGrBuAr);

	/**
	 * 删除:用户组与业务范围
	 * 
	 * @param deleteUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrBuArByIds(UserGrBuArDto deleteUserGrBuAr);

	/**
	 * 设置:用户组与业务范围
	 * 
	 * @param setUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrBuArBy1(UserGrBuArDto setUserGrBuAr);

	/**
	 * 设置:用户组与业务范围
	 * 
	 * @param setUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrBuArBy2(UserGrBuArDto setUserGrBuAr);

	/**
	 * 读取:用户组与业务范围
	 * 
	 * @param readUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象
	 */
	Integer readUserGrBuArByCodeNqIdForInteger(UserGrBuArDto readUserGrBuAr);

	/**
	 * 读取:用户组与业务范围
	 * 
	 * @param readUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象
	 */
	Integer readUserGrBuArBy2ForInteger(UserGrBuArDto readUserGrBuAr);

	/**
	 * 读取:用户组与业务范围
	 * 
	 * @param readListUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象集合
	 */
	List<Integer> readListUserGrBuArBy1(UserGrBuArDto readUserGrBuAr);

	/**
	 * 读取:用户组与业务范围
	 * 
	 * @param readListUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象集合
	 */
	List<Integer> readListUserGrBuArBy2(UserGrBuArDto readUserGrBuAr);

	/**
	 * 查询:用户组与业务范围
	 * 
	 * @param getUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象
	 */
	UserGrBuArDto getUserGrBuArBy1(UserGrBuArDto getUserGrBuAr);

	/**
	 * 查询:用户组与业务范围
	 * 
	 * @param getUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象
	 */
	UserGrBuArDto getUserGrBuArById(UserGrBuArDto getUserGrBuAr);

	/**
	 * 查询:用户组与业务范围
	 * 
	 * @param findUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象集合
	 */
	List<UserGrBuArDto> findUserGrBuArBy1(UserGrBuArDto findUserGrBuAr);

	/**
	 * 查询:用户组与业务范围
	 * 
	 * @param findUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围对象集合
	 */
	List<UserGrBuArDto> findUserGrBuArBy2(UserGrBuArDto findUserGrBuAr);
	
	/**
	 * 分页:用户组与业务范围
	 * 
	 * @param paginationUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围分页对象
	 */
	PaginationDto<UserGrBuArDto> paginationUserGrBuArBy1ForUserGrBuArList(UserGrBuArDto paginationUserGrBuAr);
			
	/**
	 * 分页
	 * 
	 * @param paginationUserGrBuAr
	 *            用户组与业务范围对象
	 * 
	 * @return 用户组与业务范围分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserGrBuArBy1ForMapList(UserGrBuArDto paginationUserGrBuAr);
	/**
	 * 保存:用户组与角色
	 * 
	 * @param saveUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象
	 */
	UserGrRoDto saveUserGrRoByIdOrCodeForUserGrRo(UserGrRoDto saveUserGrRo);

	/**
	 * 保存:用户组与角色
	 * 
	 * @param saveUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象
	 */
	UserGrRoDto saveUserGrRoBy2ForUserGrRo(UserGrRoDto saveUserGrRo);

	/**
	 * 删除:用户组与角色
	 * 
	 * @param deleteUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrRoBy1(UserGrRoDto deleteUserGrRo);

	/**
	 * 删除:用户组与角色
	 * 
	 * @param deleteUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrRoByIds(UserGrRoDto deleteUserGrRo);

	/**
	 * 设置:用户组与角色
	 * 
	 * @param setUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrRoBy1(UserGrRoDto setUserGrRo);

	/**
	 * 设置:用户组与角色
	 * 
	 * @param setUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrRoBy2(UserGrRoDto setUserGrRo);

	/**
	 * 读取:用户组与角色
	 * 
	 * @param readUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象
	 */
	Integer readUserGrRoByCodeNqIdForInteger(UserGrRoDto readUserGrRo);

	/**
	 * 读取:用户组与角色
	 * 
	 * @param readUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象
	 */
	Integer readUserGrRoBy2ForInteger(UserGrRoDto readUserGrRo);

	/**
	 * 读取:用户组与角色
	 * 
	 * @param readListUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象集合
	 */
	List<Integer> readListUserGrRoBy1(UserGrRoDto readUserGrRo);

	/**
	 * 读取:用户组与角色
	 * 
	 * @param readListUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象集合
	 */
	List<Integer> readListUserGrRoBy2(UserGrRoDto readUserGrRo);

	/**
	 * 查询:用户组与角色
	 * 
	 * @param getUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象
	 */
	UserGrRoDto getUserGrRoBy1(UserGrRoDto getUserGrRo);

	/**
	 * 查询:用户组与角色
	 * 
	 * @param getUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象
	 */
	UserGrRoDto getUserGrRoById(UserGrRoDto getUserGrRo);

	/**
	 * 查询:用户组与角色
	 * 
	 * @param findUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象集合
	 */
	List<UserGrRoDto> findUserGrRoBy1(UserGrRoDto findUserGrRo);

	/**
	 * 查询:用户组与角色
	 * 
	 * @param findUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色对象集合
	 */
	List<UserGrRoDto> findUserGrRoBy2(UserGrRoDto findUserGrRo);
	
	/**
	 * 分页:用户组与角色
	 * 
	 * @param paginationUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色分页对象
	 */
	PaginationDto<UserGrRoDto> paginationUserGrRoBy1ForUserGrRoList(UserGrRoDto paginationUserGrRo);
			
	/**
	 * 分页
	 * 
	 * @param paginationUserGrRo
	 *            用户组与角色对象
	 * 
	 * @return 用户组与角色分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserGrRoBy1ForMapList(UserGrRoDto paginationUserGrRo);
	/**
	 * 保存:用户组与用户
	 * 
	 * @param saveUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象
	 */
	UserGrUsDto saveUserGrUsByIdOrCodeForUserGrUs(UserGrUsDto saveUserGrUs);

	/**
	 * 保存:用户组与用户
	 * 
	 * @param saveUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象
	 */
	UserGrUsDto saveUserGrUsBy2ForUserGrUs(UserGrUsDto saveUserGrUs);

	/**
	 * 删除:用户组与用户
	 * 
	 * @param deleteUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrUsBy1(UserGrUsDto deleteUserGrUs);

	/**
	 * 删除:用户组与用户
	 * 
	 * @param deleteUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 影响行数
	 */
	int deleteUserGrUsByIds(UserGrUsDto deleteUserGrUs);

	/**
	 * 设置:用户组与用户
	 * 
	 * @param setUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrUsBy1(UserGrUsDto setUserGrUs);

	/**
	 * 设置:用户组与用户
	 * 
	 * @param setUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 影响行数
	 */
	int setUserGrUsBy2(UserGrUsDto setUserGrUs);

	/**
	 * 读取:用户组与用户
	 * 
	 * @param readUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象
	 */
	Integer readUserGrUsByCodeNqIdForInteger(UserGrUsDto readUserGrUs);

	/**
	 * 读取:用户组与用户
	 * 
	 * @param readUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象
	 */
	Integer readUserGrUsBy2ForInteger(UserGrUsDto readUserGrUs);

	/**
	 * 读取:用户组与用户
	 * 
	 * @param readListUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象集合
	 */
	List<Integer> readListUserGrUsBy1(UserGrUsDto readUserGrUs);

	/**
	 * 读取:用户组与用户
	 * 
	 * @param readListUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象集合
	 */
	List<Integer> readListUserGrUsBy2(UserGrUsDto readUserGrUs);

	/**
	 * 查询:用户组与用户
	 * 
	 * @param getUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象
	 */
	UserGrUsDto getUserGrUsBy1(UserGrUsDto getUserGrUs);

	/**
	 * 查询:用户组与用户
	 * 
	 * @param getUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象
	 */
	UserGrUsDto getUserGrUsById(UserGrUsDto getUserGrUs);

	/**
	 * 查询:用户组与用户
	 * 
	 * @param findUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象集合
	 */
	List<UserGrUsDto> findUserGrUsBy1(UserGrUsDto findUserGrUs);

	/**
	 * 查询:用户组与用户
	 * 
	 * @param findUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户对象集合
	 */
	List<UserGrUsDto> findUserGrUsBy2(UserGrUsDto findUserGrUs);
	
	/**
	 * 分页:用户组与用户
	 * 
	 * @param paginationUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户分页对象
	 */
	PaginationDto<UserGrUsDto> paginationUserGrUsBy1ForUserGrUsList(UserGrUsDto paginationUserGrUs);
			
	/**
	 * 分页
	 * 
	 * @param paginationUserGrUs
	 *            用户组与用户对象
	 * 
	 * @return 用户组与用户分页对象
	 */
	PaginationDto<Map<String, Object>> paginationUserGrUsBy1ForMapList(UserGrUsDto paginationUserGrUs);
}